package tools;

import javax.imageio.ImageIO;
import javax.swing.ImageIcon;
import java.awt.Image;
import java.awt.image.BufferedImage;
import java.io.File;
import java.io.IOException;
import java.util.Objects;

public class ImageUtils {
    // 头像固定显示尺寸（宽x高），可根据实际调整
    public static final int AVATAR_WIDTH = 120;
    public static final int AVATAR_HEIGHT = 166;

    /**
     * 保存头像到项目目录
     * @param scaledImage 处理后的头像
     * @param recordNumber 员工编号（用作文件名）
     * @return 保存后的文件名（带后缀）
     */
    public static String saveAvatar(BufferedImage scaledImage, String recordNumber) throws IOException {
        // 确保目录存在
        String projectRoot = System.getProperty("user.dir");
        String photoDir = projectRoot + File.separator + "personnel_photo";
        File dir = new File(photoDir);
        if (!dir.exists()) {
            dir.mkdirs();
        }

        // 生成文件名（这里简单用员工编号，也可加时间戳等保证唯一）
        String fileName = recordNumber + ".jpg";
        File output = new File(photoDir, fileName);

        // 保存为JPG格式（压缩质量可调整）
        ImageIO.write(scaledImage, "jpg", output);
        return fileName;
    }

    /**
     * 加载头像（用于初始化显示）
     * @param recordNumber 员工编号
     * @return 图片图标（默认返回占位图，若没有则返回 null 或其他处理 ）
     */
    public static ImageIcon loadAvatar(String recordNumber) {
        try {
            String projectRoot = System.getProperty("user.dir");
            String photoPath = projectRoot + File.separator + "personnel_photo" + File.separator + recordNumber + ".jpg";
            File photoFile = new File(photoPath);

            if (photoFile.exists()) {
                BufferedImage img = ImageIO.read(photoFile);
                Image scaledImage = img.getScaledInstance(AVATAR_WIDTH, AVATAR_HEIGHT, Image.SCALE_SMOOTH);
                return new ImageIcon(scaledImage);
            }
        } catch (IOException e) {
            e.printStackTrace();
        }
        // 返回默认占位图（如果有），这里假设没有合适占位图返回 null，你可根据实际改
        return null;
    }
}